---
description: "Reference for Nitric's Go library - Creates a reference to a secret in the secrets manager."
---

# Go - NewSecret()

<Note>
  This is reference documentation for the Nitric Go SDK. To learn about Secrets
  in Nitric start with the [Secrets docs](/secrets).
</Note>

Creates a reference to a secret in the secrets manager.

```go
import (
  "github.com/nitrictech/go-sdk/nitric"
  "github.com/nitrictech/go-sdk/nitric/secrets"
)

func main() {
  secret := nitric.NewSecret("secret-name").Allow(secrets.SecretPut, secrets.SecretAccess)

  nitric.Run()
}
```

## Parameters

<Properties>
  <Property name="name" required type="string">
    The unique name of this secret within the secrets manager. Subsequent calls
    to `NewSecret` with the same name will return the same object.
  </Property>
</Properties>

## Access

All Nitric resources provide access permissions you can use to specify the level of access your code needs to the resource. See here for details about infrastructure [security](/get-started/foundations/infrastructure/security).

### Available permissions:

---

**SecretPut**

This permission allows your code to set a new latest value for a secret.

---

**SecretAccess**

This permission allows your code to retrieve secret values.

---

## Examples

### Create a reference to a secret

```go
import (
  "github.com/nitrictech/go-sdk/nitric"
  "github.com/nitrictech/go-sdk/nitric/secrets"
)

func main() {
  secret := nitric.NewSecret("secret-name").Allow(secrets.SecretPut, secrets.SecretAccess)

  nitric.Run()
}
```

### See also

- [Secret.Put()](./secret-put)
- [Secret.AccessVersion()](./secret-access-version)
- [Secret.Access()](./secret-access)
